﻿Public Class frmReportes

    Private p_Tipo As String
    Public Property tipo_Reporte() As String
        Get
            Return p_Tipo
        End Get
        Set(ByVal value As String)
            p_Tipo = value
        End Set
    End Property

    Private p_MontoLetras As String
    Public Property MontoLetras() As String
        Get
            Return p_MontoLetras
        End Get
        Set(ByVal value As String)
            p_MontoLetras = value
        End Set
    End Property

    Private p_saldo_Anterior As Decimal
    Public Property SaldoAnterior() As Decimal
        Get
            Return p_saldo_Anterior
        End Get
        Set(ByVal value As Decimal)
            p_saldo_Anterior = value
        End Set
    End Property

    Private p_Datos As DataTable
    Public Property datos_Reporte() As DataTable
        Get
            Return p_Datos
        End Get
        Set(ByVal value As DataTable)
            p_Datos = value
        End Set
    End Property

    Private p_DatosDataSet As DataSet
    Public Property ds_Reporte() As DataSet
        Get
            Return p_DatosDataSet
        End Get
        Set(ByVal value As DataSet)
            p_DatosDataSet = value
        End Set
    End Property

    Private Sub frmReportes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If tipo_Reporte = "CLIENTES" Then
            Reporte_Clientes()
        ElseIf tipo_Reporte = "VENTAS" Then
            Reporte_Ventas()
        ElseIf tipo_Reporte = "COMPRAS" Then
            Reporte_Compras()
        ElseIf tipo_Reporte = "PROVEEDORES" Then
            Reporte_Proveedores()
        ElseIf tipo_Reporte = "FACTURA" Then
            Reporte_Factura()
        ElseIf tipo_Reporte = "LOTES" Then
            Reporte_Lotes()
        ElseIf tipo_Reporte = "STOCKMINIMO" Then
            Reporte_StockMinimo()
        ElseIf tipo_Reporte = "COSTOMERCADERIA" Then
            Reporte_CostosMercaderia()
        ElseIf tipo_Reporte = "CLIENTESRANKING" Then
            Reporte_ClientesRanking()
        ElseIf tipo_Reporte = "MERCADERIASRANKING" Then
            Reporte_VentasRanking()
        ElseIf tipo_Reporte = "RECIBOS" Then
            Reporte_Recibos()
        ElseIf tipo_Reporte = "ORDENPAGO" Then
            Reporte_OrdenPago()
        ElseIf tipo_Reporte = "RECIBODETALLE" Then
            Reporte_Recibos_Detalle()
        ElseIf tipo_Reporte = "ORDENCOMPRA" Then
            Reporte_OrdenCompra()
        ElseIf tipo_Reporte = "CAJAMOV" Then
            Reporte_Caja_Movimiento()
        ElseIf tipo_Reporte = "REPOGANAN" Then
            Reporte_Ganancia()
        ElseIf tipo_Reporte = "REPOVENTANUAL" Then
            Reporte_Ventas_Anual()
        ElseIf tipo_Reporte = "REPOGANANANUAL" Then
            Reporte_Ganancia_Anual()
        End If

    End Sub

    Public Sub Reporte_Ventas_Anual()
        Try

            Dim reporte As New rptFacturasVentasAnual

            'datos_Reporte.TableName = "vw_recibos_impresion"
            'ds.Tables.Add(datos_Reporte)

            reporte.SetDataSource(datos_Reporte)
            CrystalReportViewer1.ReportSource = reporte

            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Ganancia_Anual()
        Try

            Dim reporte As New rptFacturasVentasGananciaAnhio

            'datos_Reporte.TableName = "vw_recibos_impresion"
            'ds.Tables.Add(datos_Reporte)

            reporte.SetDataSource(datos_Reporte)
            CrystalReportViewer1.ReportSource = reporte

            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Ganancia()
        Try

            Dim reporte As New rptFacturasVentasGanancia

            'datos_Reporte.TableName = "vw_recibos_impresion"
            'ds.Tables.Add(datos_Reporte)

            reporte.SetDataSource(datos_Reporte)
            CrystalReportViewer1.ReportSource = reporte

            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Caja_Movimiento()
        Try

            Dim reporte As New rptCajaMovimientos

            'datos_Reporte.TableName = "vw_recibos_impresion"
            'ds.Tables.Add(datos_Reporte)

            reporte.SetDataSource(ds_Reporte)
            CrystalReportViewer1.ReportSource = reporte

            reporte.SetParameterValue("impreso_por", oiml.Usuario)
            reporte.SetParameterValue("p_saldo_anterior", SaldoAnterior)
            reporte.SetParameterValue("p_saldo_anterior_det", SaldoAnterior)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Recibos_Detalle()
        Try

            Dim reporte As New rptReciboImpresion
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_recibos_impresion"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)
            reporte.SetParameterValue("monto_letras", MontoLetras)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_OrdenPago()
        Try

            Dim reporte As New rptOrdenPago
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ordenPago"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Recibos()
        Try

            Dim reporte As New rptRecibos
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_recibo"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_VentasRanking()
        Try

            Dim reporte As New rptMercaderiaRanking
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ventas_mercaderia_ranking"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_ClientesRanking()
        Try

            Dim reporte As New rptClientesRanking
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ventas_cliente_ranking"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_CostosMercaderia()
        Try

            Dim reporte As New rptMercaderiaCostos
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_mercaderias_costos"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_StockMinimo()
        Try

            Dim reporte As New rptMercaderiaStock
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_mercaderia_stock_minimo"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            'reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Lotes()
        Try

            Dim reporte As New rptMercaderiaLote
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_mercaderias_lotes"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Clientes()
        Try

            Dim reporte As New rptClientes
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_clientes"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Ventas()
        Try

            Dim reporte As New rptFacturasVentas
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ventas"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Compras()
        Try

            Dim reporte As New rptFacturasCompras
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_compras"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Proveedores()
        Try

            Dim reporte As New rptProveedores
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_proveedores"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Factura()
        Try

            Dim reporte As New rptFactura
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ventas_detalle_impresion"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)
            reporte.SetParameterValue("monto_letras", MontoLetras)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_OrdenCompra()
        Try

            Dim reporte As New rptOrdenCompra
            Dim ds As New DataSet

            datos_Reporte.TableName = "vw_ventas_detalle_impresion"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer1.ReportSource = reporte
            reporte.SetParameterValue("impreso_por", oiml.Usuario)
            reporte.SetParameterValue("monto_letras", MontoLetras)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

End Class